Conventionally, according to international standard video encoding methods, such as MPEG (Moving Picture Experts Group) and “ITU-T H.26x,” an inputted video frame is partitioned into square blocks which are called macroblocks (MB), coding units (CU), or the like, and an intra-frame prediction, an inter-frame prediction, an orthogonal transformation of a prediction error signal, quantization, an entropy encoding process, and so on are carried out on each of the blocks. Further, after the processes on all the macroblocks are completed and one screenful of local decoded image is generated, a process of determining parameters for a loop filter, a process of filtering a local decoded image by using the loop filter, and an entropy encoding process are carried out.
The encoding process of encoding each coding unit is based on the premise that coding units are processed in a raster scan order, and in the encoding process on a certain coding unit, the encoded result of a previously-processed coding unit is needed in the raster scan order. Concretely, when carrying out an inter-frame prediction, a local decoded image of an adjacent coding unit is used as a reference to pixel. Further, in the entropy encoding process, a probability switching model is shared with the previously-processed coding unit in the raster scan order when the occurrence probability of a symbol is estimated, and it is necessary to refer to the mode information of an adjacent macroblock for switching between probability models. Therefore, in order to advance the encoding process on a certain coding unit, a part or all of the process on the previously-processed coding unit has to be completed in the raster scan order. This interdependence between coding units is an obstacle to the parallelization of the encoding process and a decoding process.
In the following nonpatent reference 1, a structural unit called a tile is used in order to solve the above-mentioned problem. In this specification, a tile is referred to as a rectangular region which consists of a plurality of coding units, as shown in FIG. 11. By eliminating the dependence on any coding unit belonging to a different tile, parallel processing on a tile level can be implemented. Concretely, a tile has characteristics as shown below.
(1) Partitioning of an image into tiles is carried out on a per coding unit basis.
(2) Partitioning of an image into tiles results in generation of a grid with the width of each row and that of each column being non-uniform. More specifically, tiles adjacent in a vertical direction have the same coordinates at both the right and left ends thereof, and tiles adjacent in a horizontal direction have the same coordinates at both the upper and lower ends thereof.
(3) Each coding unit is processed in a raster scan order which is closed within a tile. Further, slice partitioning can be carried out within a tile.
(4) In a coding unit which is processed first within a tile, entropy encoding is started from an initial state.
(5) In an intra-frame prediction process, an inter-frame prediction process, an entropy encoding process, and an entropy decoding process, at the time of making a reference to the local decoded image and the coding mode of an adjacent coding unit, a screen edge is processed without referring to the adjacent coding unit when the adjacent coding unit belongs to a different tile.
(6) A loop filtering process is carried out on the entire screen after the processes on all the tiles are completed and a decoded image of the entire screen is generated.
As mentioned above, in the encoding process of encoding a coding unit belonging to a certain tile, only the result of a coding unit belonging to the same tile is needed for orthogonal transformation, quantization, and entropy coding processes on a prediction signal and a prediction error signal. Therefore, the intra-frame/inter-frame prediction processes, and the orthogonal transformation, quantization, and entropy coding processes on the prediction error signal, which are included in the encoding process, can be carried out in parallel on a tile level. Further, in the decoding process on a bitstream generated using tiles, an entropy decoding process, an inverse quantization and inverse transformation process on a prediction error signal, and intra-frame/inter-frame prediction processes can be carried out in parallel on a tile level.